﻿using System;
using System.Collections.Generic;
using System.Text;
using Manager.App_Code.IDAL;
using Manager.App_Code.DTO;
using System.Data;

namespace Manager.App_Code.DAL
{
    class ChiTietPhuThuDichVuDAL:StandardConnectDB,IChiTietPhuThuDichVu
    {
        public List<DTO.ChiTietPhuThuDichVuDTO> GetListChiTietPhuThu()
        {
            throw new NotImplementedException();
        }

        public bool InsertChiTietPhuThu(DTO.ChiTietPhuThuDichVuDTO chitietphuthu)
        {
            Dictionary<string, object> paramlist = new Dictionary<string, object>();
            paramlist.Add("@MaPhuThu", chitietphuthu.MaPhuThu.MaPhuThu);
            paramlist.Add("@MaDV", chitietphuthu.MaDV.MaDV);
            paramlist.Add("@GiamPT", chitietphuthu.GiamPT);
            paramlist.Add("@SoLuong", chitietphuthu.SoLuong);
            paramlist.Add("@SoTien", chitietphuthu.SoTien);
            paramlist.Add("@NgayTao", chitietphuthu.NgayTao);


            return this.ExecuteUpdate("SP_ChiTietPhuThuDichVu_Insert", paramlist);
        }

        public List<DTO.ChiTietPhuThuDichVuDTO> GetListPhuThuDichVuByMaPhieuDangKy(DTO.PhieuDangKyPhongDTO phieudk)
        {
            List<ChiTietPhuThuDichVuDTO> listchitietphuthu = new List<ChiTietPhuThuDichVuDTO>();

            Dictionary<string, object> paramlist = new Dictionary<string, object>();

            paramlist.Add("@MaPhieu", phieudk.MaPhieu);

            paramlist.Add("@MaPhong", phieudk.MaPhong.MaPhong);

            DataTable dt = this.DTExecuteSelect("SP_ReportHoaDonDichVuChiTiet", paramlist);


            foreach (DataRow dr in dt.Rows)
            {
                listchitietphuthu.Add(ConvertObjectDataRowToChitietphuthuPhongDTO(dr));
            }

            return listchitietphuthu;
        }


        public bool UpdateChiTietPhuThu(DTO.ChiTietPhuThuDichVuDTO chitietphuthu)
        {
            throw new NotImplementedException();
        }

        public bool DeleteChiTietPhuThu(DTO.ChiTietPhuThuDichVuDTO chitietphuthu)
        {
            throw new NotImplementedException();
        }

        public DTO.ChiTietPhuThuDichVuDTO ConvertObjectDataRowToChitietphuthuPhongDTO(System.Data.DataRow dr)
        {
            if (dr != null)
            {
                ChiTietPhuThuDichVuDTO chitietphuthudto = new ChiTietPhuThuDichVuDTO();

                chitietphuthudto.Stt = long.Parse(dr["Stt"].ToString());

                IPhuThuDichVu iphuthu = new PhuThuDichVuDAL();

                chitietphuthudto.MaPhuThu = iphuthu.GetPhuThuDichVuByID(long.Parse(dr["MaPhuThu"].ToString()));

                IDichVu idichvu = new DichVuDAL();

                chitietphuthudto.MaDV = idichvu.GetDichVuByID(dr["MaDV"].ToString());

                chitietphuthudto.GiamPT = int.Parse(dr["GiamPT"].ToString());

                chitietphuthudto.SoLuong = int.Parse(dr["SoLuong"].ToString());

                chitietphuthudto.SoTien = double.Parse(dr["SoTien"].ToString());
                chitietphuthudto.NgayTao = DateTime.Parse(dr["NgayTao"].ToString());

                return chitietphuthudto;

            }
            return null;
            
        }


      
    }
}
